package ScalaStudy.chapter05

object Test03_FunctionParameter {
  def main(args: Array[String]): Unit = {

    /////////////////////////////////////////////////////////////////////////////////////////
    ///////////////////////////////////////   函数参数   /////////////////////////////////////
    /////////////////////////////////////////////////////////////////////////////////////////

//    （1）	可变参数
println("(1)")

    def f1(str: String*): Unit = {                                        //参数的*号表示可以传递多个参数
      println(str)
    }
    f1("aaa")
    f1("aaa", "bbb")

//    （2）	如果参数列表中存在多个参数，那么可变参数一般放置在最后
println("(2)")

    def f2(str1: String, str2: String*): Unit = {                         //参数的*号表示可以传递多个参数
      println(str1 + str2)
    }
    f2("str")
    f2("str1", "str2", "str3")                                //可变参数一般放置在最后

//    （3）	参数默认值，一般将有默认值的参数放置在参数列表的后面
println("(3)")

    def f3(name: String = "wq"): Unit = {
      println("my name is " + name)
    }
    f3()                                                                   //默认传参
    f3("wangqiang")

//    （4）	带名参数
println("(4)")

    def f4(name: String = "wangqiang", age : Int): Unit = {
      println(s"${age}岁的${name}在arm")
    }
    f4("wq", 27)
    f4(age = 27, name = "wq")                                              //带名传参方式
    f4(age = 27)





  }
}
